home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-04 / timer11.zip / PZTEST.ASM < prev    next >
Assembly Source File  |  1992-04-21  |  2KB  |  86 lines

  1. ;****************************************************************************
  2. ;*
  3. ;*                            Precision Zen Timer
  4. ;*
  5. ;*                               From the book
  6. ;*                         "Zen of Assembly Language"
  7. ;*                            Volume 1, Knowledge
  8. ;*
  9. ;*                             by Michael Abrash
  10. ;*
  11. ;*                      Modifications by Kendall Bennett
  12. ;*
  13. ;* Filename:    $RCSfile: pztest.asm $
  14. ;* Version:        $Revision: 1.2 $
  15. ;*
  16. ;* Language:    8086 Assembler
  17. ;* Environment:    IBM PC (MS DOS)
  18. ;*
  19. ;* Description:    Standalone .exe program to measure the performance of code
  20. ;*                that takes less than 54 ms to execute.
  21. ;*
  22. ;*                Link with PZTIMER.ASM. PZTEST.BAT can be used to assemble,
  23. ;*                link and run the test. Code to be measured must be in the
  24. ;*                file TESTCODE. See MOVTST.ASM for example test code.
  25. ;*
  26. ;* $Id: pztest.asm 1.2 92/01/27 21:38:56 kjb release $
  27. ;*
  28. ;* Revision History:
  29. ;* -----------------
  30. ;*
  31. ;* $Log:    pztest.asm $
  32. ;* Revision 1.2  92/01/27  21:38:56  kjb
  33. ;* First release to the public.
  34. ;* 
  35. ;* Revision 1.1  91/11/14  17:17:14  kjb
  36. ;* Initial revision
  37. ;* 
  38. ;****************************************************************************
  39.  
  40.         IDEAL
  41.  
  42. INCLUDE "model.mac"                ; Memory model macros
  43.  
  44. segment    mystack para stack 'STACK'
  45.         db        512 dup(?)
  46. ends    mystack
  47.  
  48. header        pztest                ; Set up memory model
  49.  
  50. begcodeseg    pztest                ; Start of code segment
  51.  
  52.         assume ds:_TEXT            ; Access data in the code segment
  53.  
  54.         extrn _PZTimerOn:far, _PZTimerOff:far, _PZTimerReport:far
  55.  
  56. ; Set up a few equates to map calls to ZTimerOn, ZTimerOff and ZTimerReport
  57. ; to the 'C' callable precision timing routines.
  58.  
  59. ZTimerOn        EQU    _PZTimerOn
  60. ZTimerOff        EQU    _PZTimerOff
  61. ZTimerReport    EQU    _PZTimerReport
  62.  
  63. proc    Start    near
  64.  
  65.         push    cs
  66.         pop        ds                ; Set ds to point to the code segment,
  67.                                 ; so data as well as code can easily
  68.                                 ; be included in TESTCODE
  69.  
  70. INCLUDE    "testcode"
  71.  
  72. ; Display the results
  73.  
  74.         call    _PZTimerReport
  75.  
  76. ; Terminate the program
  77.  
  78.         mov        ah,4ch
  79.         int        21h
  80.  
  81. endp    Start
  82.  
  83. endcodeseg    pztest
  84.  
  85.         END        Start            ; End of module
  86.